package br.com.model;

import java.sql.Date;
import java.util.ArrayList;
import java.util.List;

import br.com.model.Pergunta;

public class Questionario {
	private int idQuestionario;
	private Usuario usuario;
	private Date dia;
	private List<Pergunta> perguntas;
	private List<Resposta> respostas;
	
	public Questionario() {
		System.out.println("instanciou novo questionario");
		this.idQuestionario = 0;
		this.usuario = new Usuario();
		this.perguntas =  new ArrayList<Pergunta>();
		this.respostas = new ArrayList<Resposta>();
		this.setDia(new java.util.Date());
	}
	public int getIdQuestionario() {
		return idQuestionario;
	}
	public void setIdQuestionario(int idQuestionario) {
		this.idQuestionario = idQuestionario;
	}
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public Date getDia() {
		return dia;
	}
	public void setDia(java.util.Date dia) {
		this.dia = new Date(dia.getTime());
	}
	
	public void setDia(Date dia) {
		this.dia = dia;
	}
	public void addPergunta(Pergunta pergunta){
		this.perguntas.add(pergunta);
	}

	public void addResposta(Resposta resposta){
		this.respostas.add(resposta);
	}
	public List<Pergunta> getPerguntas() {
		return perguntas;
	}
	public void setPerguntas(List<Pergunta> perguntas) {
		this.perguntas = perguntas;
	}
	public List<Resposta> getRespostas() {
		return respostas;
	}
	public void setRespostas(List<Resposta> respostas) {
		this.respostas = respostas;
		if(!perguntas.isEmpty())
			setAlternativas();
	}
	
	private void setAlternativas(){
		int cont=0;
		for (int i = 0; i < perguntas.size(); i++) {
			for (int j = 0; j < 3; j++) {
				perguntas.get(i).addAlternativa(respostas.get(cont));
				cont++;
			}
		}
	}
	
	//percorre as perguntas e compara as respostas para retornar a nota do questionario
	public int getNota() {
		int nota = 0;
		for (int i = 0; i < perguntas.size(); i++) {
			if(perguntas.get(i).getResposta().getIdResposta() == perguntas.get(i).getRespondido().getIdResposta())
				nota +=2;
		}
		
		return nota;
	}
	
	
}
